package com.ctesi.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

//本工具类用于从湖北省招标公告中提取内容
public class StringExtract {
    public static String removeTags(String text) {
        // 正则表达式模式，匹配尖括号包含的内容
        String regex = "<[^<]+?>";

        // 创建正则表达式模式对象
        Pattern pattern = Pattern.compile(regex);

        // 根据正则表达式模式匹配文本内容
        Matcher matcher = pattern.matcher(text);

        // 使用空字符串替换匹配到的内容

        return matcher.replaceAll("");
    }

    public static String removeSpaces(String text) {
        // 使用字符串替换方法将空格替换为空字符串

        return text.replaceAll("\\p{Z}", "");
    }

    public static String removeEmptyLines(String text) {
        // 使用正则表达式去除空行

        return text.replaceAll("(?m)^\\s*$[\n\r]{1,}", "");
    }

    public static String removeNbsp(String text) {
        // 使用正则表达式去除&nbsp;

        return text.replaceAll("&nbsp;", "");
    }

    public static String extractTenderNumber(String text) {
        // 正则表达式模式，匹配招标编号的格式
        String regex = "招标编号：(\\w+-\\w+-\\w+)";

        // 创建正则表达式模式对象
        Pattern pattern = Pattern.compile(regex);

        // 根据正则表达式模式匹配文本内容
        Matcher matcher = pattern.matcher(text);

        String tenderNumber = "";
        if (matcher.find()) {
            // 获取匹配到的招标编号
            tenderNumber = matcher.group(1);
        }

        return tenderNumber;
    }

    public static String getFirstLine(String text) {
        // 使用正则表达式分割字符串，以换行符\n或\r\n作为分隔符
        String[] lines = text.split("\\r?\\n");

        // 获取第一行

        return lines[0];
    }

    public static String getPenultimateLine(String text) {
        // 将多行文本拆分成行的数组
        String[] lines = text.split("\n");

        String penultimateLine = "";
        if (lines.length >= 2) {
            // 获取倒数第二行
            penultimateLine = lines[lines.length - 2];
        }

        return penultimateLine;
    }

    public static String getTenderer(String text) {
        // 查找 "招标人:" 所在的位置
        int index = text.indexOf("招标人:");

        String organization = "";
        if (index != -1) {
            // 从 "招标人:" 后面的位置开始查找下一个换行符的位置
            int newLineIndex = text.indexOf("\n", index + 5);
            if (newLineIndex != -1) {
                // 从 "招标人:" 后面的位置开始截取到下一个换行符的位置，即为团风县马曹庙镇人民政府
                organization = text.substring(index + 5, newLineIndex);
            }
        }

        return organization;
    }

    public static String getAddress(String text) {
        // 使用正则表达式匹配"建设地点："后面的内容，即为建设地点
        Pattern pattern = Pattern.compile("建设地点：(.*?)建设规模：");
        Matcher matcher = pattern.matcher(text);

        String address = "";
        if (matcher.find()) {
            address = matcher.group(1);
        }

        return address;
    }

    public static String extractTextByRegex(String input, String pattern) {
        Pattern regex = Pattern.compile(pattern);
        Matcher matcher = regex.matcher(input);

        if (matcher.find()) {
            return matcher.group(1);
        } else {
            return null;
        }

    }
}




